package com.dms.modules.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dms.modules.product.entity.ProductComment;
import com.dms.modules.product.vo.ProductReviewVO;

import java.util.List;
import java.util.Map;

/**
 * 商品评价服务接口
 */
public interface ProductReviewService extends IService<ProductComment> {
    
    /**
     * 添加商品评价
     */
    boolean addReview(Long userId, Long productId, String content, Integer rating);
    
    /**
     * 回复评价
     */
    boolean replyReview(Long reviewId, String reply);
    
    /**
     * 删除评价
     */
    boolean deleteReview(Long userId, Long reviewId);
    
    /**
     * 获取商品评价列表
     */
    IPage<ProductReviewVO> getProductReviews(Long productId, Integer pageNum, Integer pageSize);
    
    /**
     * 获取用户评价列表
     */
    IPage<ProductReviewVO> getUserReviews(Long userId, Integer pageNum, Integer pageSize);
    
    /**
     * 获取商品评分统计
     */
    List<Integer> getProductRatings(Long productId);
    
    /**
     * 获取商品评价数量
     */
    Integer getReviewCount(Long productId);
    
    /**
     * 获取商品平均评分
     */
    Double getAverageRating(Long productId);
    
    /**
     * 检查用户是否已评价
     */
    boolean hasReviewed(Long userId, Long orderId, Long productId);
    
    /**
     * 点赞评价
     */
    boolean likeReview(Long userId, Long reviewId);
    
    /**
     * 取消点赞评价
     */
    boolean unlikeReview(Long userId, Long reviewId);
    
    /**
     * 获取评价统计信息
     */
    Map<String, Object> getReviewStats(Long productId);
} 